package com.zingrow.web.push.bind.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.zingrow.web.push.bind.model.Bind;
import com.zingrow.web.push.bind.response.BindResponse;

public interface BindMapper {

    /**
	 * 同名验证
	 * 
	 * @param baidu_channel_id
	 * @return
	 */
    int selectSameBybaidu_channel_id(@Param("baidu_channel_id") String baidu_channel_id,
            @Param("user_account") String user_account);

    /**
	 * 新增绑定
	 * 
	 * @param bind
	 * @return
	 */
    int insert(Bind bind);

    /**
	 * 修改绑定
	 */
    int modify(Bind bind);
    
    /**
	 * 修改baidu_channel_id空值绑定
	 * 
	 * @param bind
	 * @return
	 */
    int modifyByAccount(Bind bind);

    /**
	 * 推送方案所属用户绑定信息查询
	 * 
	 * @param ifm_id
	 * @return
	 */
    List<Bind> selectAppByifmId(Integer ifm_id);

    /**
	 * 修改IOS推送后或用户阅读后的badge信息
	 * 
	 * @param bind
	 * @return
	 */
    int modifyBadge(Bind bind);

    /**
	 * IOS 绑定用户错误信息查询（IOS登录绑定时有baidu_channel_id为空现象）
	 */
    Bind selectIOSByuserAccount(@Param("baidu_channel_id") String baidu_channel_id,
            @Param("user_account") String user_account );
    
    /**
	 * 退出账号删除绑定信息
	 * 
	 * @param baidu_channel_id
	 * @param user_account
	 * @return
	 */
    int deleteBindByAccountAndChannelId(@Param("baidu_channel_id") String baidu_channel_id,
            @Param("user_account") String user_account );
    
    /**
	 * 查询用户的版本
	 * 
	 * @param user_account
	 * @return
	 */
    Integer selectAppVerSionNumberByUserName(@Param("user_account") String user_account);
    
    /**
	 * 通过用户名查询绑定信息
	 * 
	 * @param accountList
	 * @return
	 */
    Bind selectAppByUserName(@Param("user_account") String user_account);
    
    int deleteBindByChannelId(@Param("baidu_channel_id") String baidu_channel_id);

	/**
	 * 方案推送对应用户信息查询
	 * 
	 * @param ifm_id
	 * @return
	 */
	List<BindResponse> selectAppUser(Integer ifm_id);

}
